/*
 * Copyright (C) 2005-2011 MaNGOS <http://www.getmangos.com/>
 *
 * Copyright (C) 2008-2011 Trinity <http://www.trinitycore.org/>
 *
 * Copyright (C) 2010-2011 ProjectSkyfire <http://www.projectskyfire.org/>
 * 
 * Copyright (C) 2011 ArkCORE <http://www.arkania.net/>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
 */

/** \file
 \ingroup realmd
 */

#ifndef _AUTHCODES_H
#define _AUTHCODES_H

enum AuthResult {
	WOW_SUCCESS = 0x00,
	WOW_FAIL_BANNED = 0x03,
	WOW_FAIL_UNKNOWN_ACCOUNT = 0x04,
	WOW_FAIL_INCORRECT_PASSWORD = 0x05,
	WOW_FAIL_ALREADY_ONLINE = 0x06,
	WOW_FAIL_NO_TIME = 0x07,
	WOW_FAIL_DB_BUSY = 0x08,
	WOW_FAIL_VERSION_INVALID = 0x09,
	WOW_FAIL_VERSION_UPDATE = 0x0A,
	WOW_FAIL_SUSPENDED = 0x0C,
	WOW_SUCCESS_SURVEY = 0x0E,
	WOW_FAIL_PARENTCONTROL = 0x0F,
	WOW_FAIL_LOCKED_ENFORCED = 0x10,
	WOW_FAIL_TRIAL_ENDED = 0x11,
	WOW_FAIL_USE_BATTLENET = 0x12,
	WOW_FAIL_TOO_FAST = 0x16,
	WOW_FAIL_CHARGEBACK = 0x17,
	WOW_FAIL_GAME_ACCOUNT_LOCKED = 0x18,
	WOW_FAIL_INTERNET_GAME_ROOM_WITHOUT_BNET = 0x19,
	WOW_FAIL_UNLOCKABLE_LOCK = 0x20,
	WOW_FAIL_DISCONNECTED = 0xFF,
};

enum LoginResult {
	LOGIN_OK = 0x00,
	LOGIN_FAILED = 0x01,
	LOGIN_FAILED2 = 0x02,
	LOGIN_BANNED = 0x03,
	LOGIN_UNKNOWN_ACCOUNT = 0x04,
	LOGIN_UNKNOWN_ACCOUNT3 = 0x05,
	LOGIN_ALREADYONLINE = 0x06,
	LOGIN_NOTIME = 0x07,
	LOGIN_DBBUSY = 0x08,
	LOGIN_BADVERSION = 0x09,
	LOGIN_DOWNLOAD_FILE = 0x0A,
	LOGIN_FAILED3 = 0x0B,
	LOGIN_SUSPENDED = 0x0C,
	LOGIN_FAILED4 = 0x0D,
	LOGIN_CONNECTED = 0x0E,
	LOGIN_PARENTALCONTROL = 0x0F,
	LOGIN_LOCKED_ENFORCED = 0x10,
};

#define POST_WOTLK_ACCEPTED_CLIENT_BUILD              {13623, 13596, 13329, 0}
#define POST_BC_ACCEPTED_CLIENT_BUILD                 {13205, 13164, 12340, 11723, 11403, 11159, 10571, 10505, 10146, 9947, 8606, 0}
#define PRE_BC_ACCEPTED_CLIENT_BUILD                  {5875, 6005, 0}

enum ExpansionFlags {
	POST_WOTLK_EXP_FLAG = 0x4,
	POST_BC_EXP_FLAG = 0x2,
	PRE_BC_EXP_FLAG = 0x1,
	NO_VALID_EXP_FLAG = 0x0
};

namespace AuthHelper {
bool IsAcceptedClientBuild(int build);
bool IsPostWotLKAcceptedClientBuild(int build);
bool IsPostBCAcceptedClientBuild(int build);
bool IsPreBCAcceptedClientBuild(int build);
}
;

#endif
